package com.xiao.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xiao.domain.ResponseResult;
import com.xiao.domain.dto.AddRoleDto;
import com.xiao.domain.dto.RoleChangeStatusDto;
import com.xiao.domain.dto.SysRoleDto;
import com.xiao.domain.pojo.SysRole;
import com.xiao.domain.vo.AllRoleListVo;
import com.xiao.domain.vo.PageVo;
import com.xiao.domain.vo.RoleMenuDto;
import com.xiao.domain.vo.SysRoleByIdVo;

import java.util.List;

// 角色信息表 业务接口
public interface SysRoleService extends IService<SysRole> {

    // 根据 用户ID，查询 角色关键字
    List<String> selectRolekeyByUserId(Long userId);

    // 查询角色列表并分页 sysRoleDto 限制接受前端参数
    ResponseResult<PageVo> roleList(Integer pageNum,  Integer pageSize,SysRoleDto sysRoleDto);

    // 修改角色状态
    ResponseResult roleChangeStatus(RoleChangeStatusDto roleChangeStatusDto);

    // 保存修改
    ResponseResult addRole(AddRoleDto addRoleDto);

    // 根据角色 ID 列表 删除 Role
    ResponseResult delRoleById(List<Long> ids);
    // 根据角色 ID 查询 角色信息
    ResponseResult<SysRoleByIdVo> getRoleById(Long id);

    // 保存修改 角色信息及其权限
    ResponseResult updateRoleMenu(RoleMenuDto roleMenuDto);


    // 获取状态正常的所有角色列表
    List<AllRoleListVo> getAllRoleList();

}